{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "f237a90c2c2568e9",
   "metadata": {},
   "source": [
    "# AlexNet 网络识别手写图片\n",
    "本节属于 [PyTorch深度学习：深度神经网络（CNN）](https://www.bilibili.com/video/BV1vu4y1n77T) 的范畴，AlexNet 是第一个现代深度卷积网络模型，其首次使用了很多现代网络的技术方法，作为 2012 年 ImageNet 图像分类竞赛冠军，输入为 3×224×224 的图像，输出为 1000 个类别的条件概率。\n",
    "\n",
    "这里跟随 B 站视频中的教学，拿来识别图片，因为 ImageNet 数据集太大训练时间过长，主要是体验一下网络构建的过程。\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "27b54580081ef80a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-04T10:37:33.210300Z",
     "start_time": "2025-08-04T10:37:28.953666Z"
    }
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "import torch.nn as nn\n",
    "import pandas as pd\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline\n",
    "from matplotlib_inline import backend_inline\n",
    "\n",
    "# 数据集相关\n",
    "from torchvision import datasets, transforms\n",
    "from torch.utils.data import Dataset, DataLoader"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "239a50962a06bb6d",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-04T10:44:29.861337Z",
     "start_time": "2025-08-04T10:44:29.804880Z"
    }
   },
   "outputs": [],
   "source": [
    "transform = transforms.Compose(  # 将多个图像变换操作组合在一起\n",
    "    [\n",
    "        transforms.ToTensor(),\n",
    "        transforms.Resize(224),\n",
    "        transforms.Normalize((0.1307,), (0.3081,))\n",
    "    ]\n",
    ")\n",
    "\n",
    "# 下载训练集\n",
    "train_data = datasets.MNIST(\n",
    "    root='./datasets/mnist/',\n",
    "    train=True,\n",
    "    download=True,\n",
    "    transform=transform\n",
    ")\n",
    "test_data = datasets.MNIST(\n",
    "    root='./datasets/mnist/',\n",
    "    train=False,\n",
    "    download=True,\n",
    "    transform=transform\n",
    ")\n",
    "\n",
    "# 批次加载器\n",
    "train_loader = DataLoader(train_data, shuffle=True, batch_size=256)\n",
    "test_loader = DataLoader(test_data, shuffle=False, batch_size=256)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "b80f28e452a27e52",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-04T10:44:49.038186Z",
     "start_time": "2025-08-04T10:44:49.014999Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 神经网络示意图\n",
    "from IPython.display import Image\n",
    "\n",
    "Image(filename='./images/AlexNet 网络.png')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "a83b1bc447ae92d7",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-04T12:35:58.036989Z",
     "start_time": "2025-08-04T12:35:58.032769Z"
    }
   },
   "outputs": [],
   "source": [
    "# 上图中的表格相较于原 AlexNet 稍有修改，不过总体不变，仅输入输出做了改变\n",
    "class Net(nn.Module):\n",
    "    def __init__(self):\n",
    "        super(Net, self).__init__()\n",
    "        self.net = nn.Sequential(\n",
    "            nn.Conv2d(in_channels=1, out_channels=96, kernel_size=11, stride=4, padding=1), nn.ReLU(),\n",
    "            nn.MaxPool2d(kernel_size=3, stride=2),\n",
    "            nn.Conv2d(in_channels=96, out_channels=256, kernel_size=5, stride=1, padding=2), nn.ReLU(),\n",
    "            nn.MaxPool2d(kernel_size=3, stride=2),\n",
    "            nn.Conv2d(in_channels=256, out_channels=384, kernel_size=3, stride=1, padding=1), nn.ReLU(),\n",
    "            nn.Conv2d(in_channels=384, out_channels=384, kernel_size=3, stride=1, padding=1), nn.ReLU(),\n",
    "            nn.Conv2d(in_channels=384, out_channels=256, kernel_size=3, stride=1, padding=1), nn.ReLU(),\n",
    "            nn.MaxPool2d(kernel_size=3, stride=2),\n",
    "            nn.Flatten(),\n",
    "            nn.Linear(in_features=6400, out_features=4096), nn.ReLU(),\n",
    "            nn.Dropout(p=0.5),\n",
    "            nn.Linear(in_features=4096, out_features=4096), nn.ReLU(),\n",
    "            nn.Dropout(p=0.5),\n",
    "            nn.Linear(in_features=4096, out_features=10)\n",
    "        )\n",
    "\n",
    "    def forward(self, x):\n",
    "        return self.net(x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "98cfac2b80f8b9c5",
   "metadata": {},
   "outputs": [],
   "source": [
    "# 初始化网络与训练器\n",
    "net = Net().to('cuda')\n",
    "\n",
    "learning_rate = 0.1\n",
    "loss_fn = nn.CrossEntropyLoss()  # 自带 softmax 激活函数\n",
    "\n",
    "optimizer = torch.optim.SGD(net.parameters(), lr=learning_rate)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "8bf687bda3cc9fbf",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-04T13:03:24.135003Z",
     "start_time": "2025-08-04T12:59:32.013514Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "307.818473123014\n",
      "26.661930222064257\n",
      "14.436844404786825\n",
      "10.44686798658222\n",
      "8.328837839420885\n",
      "6.7650570520199835\n",
      "5.8987943100510165\n",
      "4.759063144214451\n",
      "4.390228346397635\n",
      "3.7513505064998753\n"
     ]
    },
    {
     "data": {
      "image/png": "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u5Ebp9OpM844Y1jfIyMjg38x4wjfR3zh+4gvfB/xh+/kxE42YhPChGIAAGAphBsAAGAphJso8nq9Wr58ubxer9mlQHwf8YbvI77wfcQfvpPosd2EYgAAYG2M3AAAAEsh3AAAAEsh3AAAAEsh3AAAAEsh3ETJ2rVrNWHCBPl8Ps2cOVNbt241uyTbKisr00UXXaT09HTl5ubquuuu08cff2x2Wehx3333yeFw6K677jK7FNs6cOCAvvGNbyg7O1vJyck6//zz9f7775tdli0FAgEtXbpUEydOVHJysgoKCrRixYpB7Z+EEyPcRMGGDRtUWlqq5cuXa/v27Zo8ebLmzJmjuro6s0uzpTfeeEMLFy7Uu+++q9dee02dnZ268sor1draanZptvfee+/pN7/5jS644AKzS7Gtw4cPa/bs2UpKStKf/vQn/eMf/9CqVas0cuRIs0uzpfvvv1+PPvqo1qxZox07duj+++/XL3/5Sz388MNml5bQWAoeBTNnztRFF12kNWvWSOrevyo/P1+33367Fi9ebHJ1qK+vV25urt544w39y7/8i9nl2FZLS4suvPBCPfLII/r5z3+uKVOmaPXq1WaXZTuLFy/W22+/rbfeesvsUiDp2muvVV5enp544olw21e/+lUlJyfrv//7v02sLLExcnOaOjo6tG3bNpWUlITbnE6nSkpKVFFRYWJlCGlsbJQkZWVlmVyJvS1cuFDXXHNNxH8riL0//OEPmj59uv793/9dubm5mjp1qh5//HGzy7KtWbNmqby8XDt37pQk/e1vf9OWLVt01VVXmVxZYrPdxpnR1tDQoEAgoLy8vIj2vLw8/fOf/zSpKoQYhqG77rpLs2fP1nnnnWd2Obb1zDPPaPv27XrvvffMLsX29uzZo0cffVSlpaW6++679d577+mOO+6Qx+PRTTfdZHZ5trN48WI1NTXpi1/8olwulwKBgH7xi1/oxhtvNLu0hEa4gaUtXLhQf//737VlyxazS7Gt6upq3XnnnXrttdfk8/nMLsf2DMPQ9OnTtXLlSknS1KlT9fe//13r1q0j3Jjg2Wef1f/8z/9o/fr1Ovfcc1VZWam77rpLY8eO5fs4DYSb05STkyOXy6Xa2tqI9traWo0ePdqkqiBJt912m15++WW9+eabOuOMM8wux7a2bdumuro6XXjhheG2QCCgN998U2vW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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "epochs = 10\n",
    "losses = []\n",
    "\n",
    "for epoch in range(epochs):\n",
    "    avg_loss = 0\n",
    "    times = 0\n",
    "\n",
    "    for x, y in train_loader:\n",
    "        x = x.to('cuda')\n",
    "        y = y.to('cuda')\n",
    "        pred = net(x)\n",
    "        loss = loss_fn(pred, y)\n",
    "        avg_loss += loss.item()\n",
    "        times += 1\n",
    "        optimizer.zero_grad()\n",
    "        loss.backward()\n",
    "        optimizer.step()\n",
    "\n",
    "    print(avg_loss)\n",
    "    losses.append(avg_loss / times)\n",
    "\n",
    "Fig = plt.figure()\n",
    "plt.plot(range(epochs), losses)\n",
    "plt.ylabel('loss')\n",
    "plt.xlabel('epoch')\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "327b0ac49284ea3",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2025-08-04T13:03:33.855794Z",
     "start_time": "2025-08-04T13:03:25.812363Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "测试集精准度: 99.00999450683594 %\n"
     ]
    }
   ],
   "source": [
    "# 测试网络\n",
    "correct = 0\n",
    "total = 0\n",
    "\n",
    "with torch.no_grad():\n",
    "    for (x, y) in test_loader:\n",
    "        # 获取小批次的x与y\n",
    "        x, y = x.to('cuda:0'), y.to('cuda:0')\n",
    "        Pred = net(x)\n",
    "        # 该局部关闭梯度计算功能\n",
    "        # 一次前向传播（小批量）\n",
    "        _, predicted = torch.max(Pred.data, dim=1)\n",
    "        correct += torch.sum((predicted == y))\n",
    "        total += y.size(0)\n",
    "\n",
    "print(f'测试集精准度: {100 * correct/total} %')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "50b8234efb216ea2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "9815622c95f9450d8d82cdd36f5fe828",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "VBox(children=(FileUpload(value=(), accept='.png,.jpg,.jpeg', description='Upload'), HBox(children=(IntSlider(…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from tools.ipynb_draw import DrawCanvas\n",
    "from IPython.display import display\n",
    "from ipywidgets import Button\n",
    "from PIL import Image\n",
    "\n",
    "dc = DrawCanvas(width=48, height=48, brush_size=6)\n",
    "\n",
    "callback_button = Button(description=\"识别\")\n",
    "\n",
    "def callback(_):\n",
    "    with dc.out:\n",
    "        try:\n",
    "            np_img = dc.canvas.get_image_data(width=48, height=48)\n",
    "            img = Image.fromarray(np_img)\n",
    "            transform = transforms.Compose([\n",
    "                transforms.Grayscale(),  # 如果是彩色图像转为灰度\n",
    "                transforms.Resize((224, 224)),  # 调整大小为 224 * 224\n",
    "                transforms.ToTensor(),  # 转为张量并归一化到[0,1]\n",
    "                transforms.Normalize((0.1307,), (0.3081,))  # 标准化到[-1,1]\n",
    "            ])\n",
    "\n",
    "            # 对图像进行预处理\n",
    "            input_tensor = transform(img).unsqueeze(0).to('cuda')  # 添加batch维度 (1, 1, 28, 28)\n",
    "\n",
    "            # 3. 前向传播\n",
    "            with torch.no_grad():  # 不需要计算梯度\n",
    "                output = net(input_tensor)\n",
    "                prediction = torch.argmax(output, dim=1).item()  # 获取预测类别\n",
    "                print(prediction)\n",
    "        except BaseException as e:\n",
    "            print(str(e))\n",
    "\n",
    "callback_button.on_click(callback)\n",
    "\n",
    "\n",
    "layout = dc.get_layout()\n",
    "layout.children[1].children = layout.children[1].children + (callback_button,)\n",
    "display(layout)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "356fb224-a430-42e9-abc2-858ca362407f",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
